為了強化員工瀏覽網頁的安全性,一些企業會選擇在閘道端架設Proxy(代理伺服器),所有員工連上網際網路瀏覽網頁時,都必須先經由Proxy伺服器才能通過防火牆控管。一般來說,用Proxy控管員工瀏覽網頁,這種方式有哪些好處和限制?
無論是想要加快用戶端電腦連線外部網站的速度,還是要控管員工連線上網的行為,都可以選擇在你的企業現有網路架構中,建置一臺Proxy Server(代理伺服器)來達到管理的目的,只是,它是否有潛在的缺點呢?
Proxy Server又稱為Cache Server(快取伺服器),從名稱上就可以得知,主要的就是用來加快使用者連線上網的速度而存在,在過去經常運用在學校單位或是由ISP提供這一方面的服務。
以學校來說,當眾多學生同時連線上網,Proxy可以很有效率地解決可能遭遇的網路頻寬不足,另一方面,還可以強制學校網路內的所有用戶端電腦經過一定的設定後才能連上網際網路──使用者在瀏覽器的Proxy設定中,如果沒有設定正確的伺服器位址或是忽略不設定,便無法直接透過閘道IP位址而直接連線到網際網路上的各種網站。這部分的基本控管相當容易,因為管理員只要在閘道的防火牆規則上,新增一道存取規則,所有內部網路的電腦只允許經由Proxy伺服器才能連線到外部的網站(開放TCP 80埠與443埠)即可。由此可見,選擇建置一臺Proxy Server,可以說是一魚雙吃之舉。
採用Proxy Server的缺點
看來企業若選擇在防火牆閘道之後多增加一臺Proxy Server,似乎可以解決低頻寬、使用者上網速度以及使用者連線控管上的問題,然而你可能不知道,它仍有一些潛在的問題,這端看你的企業是否能夠接受,以及所建置的Proxy Server是否能提供相對的因應之道了。
.某一些網站的連線登入可能會無法進行:某一些網際網路上的網站可能在使用者在連線登入之後,才可以開始使用,例如入口網站、網路銀行、購物網站等等,經由Proxy Server的轉接連線之後,瀏覽某一些網站時,使用者可能會遭遇到:不管如何輸入登入的帳號與密碼,網站頁面會始終停留在登入頁面,無法進到成功登入後的頁面。
使用者如果想解決上述問題,通常只要在瀏覽器的Proxy設定中,將此功能暫時取消即可解決。萬一管理員當初設定只允許Proxy Server對外存取外部的網站,這個問題將無法即刻獲得解決。
.可能變成網站垃圾的大本營:既然Proxy Server會將快取下來的各種網頁上的資料暫存在本機的硬碟,時間一久,管理員應該到快取資料所在的資料夾,查看究竟有哪些網頁資料儲存在這裡頭。在正常情況之下,你通常會發現裡面有許多亂七八糟、不堪入目的頁面檔案(HTML)、圖檔。想要解決這個問題,身為管理員,便需要進一步控管使用者可以連線或不可以連線的網站。
.使用者所取得的網頁資料可能是過期的:由於Proxy Server自動與遠端網站內容的更新,都間隔一段固定的時間(TTL),可能是3個小時、1天、1周或是更久,因此如果目的網站更新速度較為頻繁時,用戶端電腦便有可能取到舊版本的頁面資訊。想要解決這個問題,當然就是將Proxy Server快取資料庫的更新時間縮短,不過這項設定將直接影響到整體的運作負載,除非你公司的網際網路頻寬夠大、伺服器的硬體規格夠強(尤其是記憶體的大小),否則請盡可能維持在系統預設值即可。
.多層次架構下,可能隨時面臨斷線:對企業規模較大的網路環境來說,很可能採用多層的Proxy Server連接方式,達到更高效率的快取機制。不過,在這種架構下如果設定不當,極可能會造反效果,讓網站連線的效率更差,或是在上游伺服器發生故障時,導致全部用戶端無法連線上網。想要有效避免此類事件的發生,關鍵在於架構設計時的詳細評估,以及作好必要的高可用性(HA)規畫。
Proxy Server的運作與架構
如果想得到最佳化的效能,通常Proxy Server都還會提供幾種輔助的快取機制,供管理人員進行進階的組態配置。
.記憶體快取(RAM Caching):不使用傳統由硬碟空間來作為快取的緩衝處理,而改用記憶體的運作效能,加速快取的處理機制。
.主動式快取(Active Caching):依據管理者所設定的快取資料的有效時間(TTL),自動判斷快取伺服器中的快取資訊是否過期,並且選擇適當的更新下載時機。
.排程快取(Scheduled Cache):由管理者預先制定好的快取排程下載時間,便可以讓企業內部用戶端經常連結的網站內容,在非網路巔峰的使用時間中(例如凌晨或假日),預先下載到伺服端的快取資料庫裡,進而達到加速用戶端電腦瀏覽網站的速度。
大多數的Proxy Server架構中,除了提供了上述的幾種快取服務之外,也會提供所謂的階層式快取機制(Hierarchical Caching),就是使用兩部以上的Proxy Server快取伺服器(可以是外部公用的Proxy),經由Upstream Routing的連結方式,由遠端(或是稱為上層)快取伺服主機決定用戶端所提出的連線要求,必須經由哪一臺快取伺服器來提供快取資訊,回應給用戶端電腦上的瀏覽器。但相對地,如果管理人員設定不當,可能使用者上網的速度反而被拖累。
了解Proxy Server的快取基本運作方式後,讓我們進一步了解架構的方式。
對於許多已建置有硬體式防火牆的公司來說,如果不想建置兩層式的防火牆架構的話,仍然可以使用單一片網卡的Web Proxy模式。簡單地說,氏將代理伺服器建置在邊緣防火牆之內,以提供網站快取的服務與控管使用者上網。
目前在資訊市場上最多人使用的Proxy Server,通常是架構在Unix、Linux系統下的Squid,雖然從安裝到設定,它都是使用命令模式介面來完成,但由於完全免費,並且在網際網路上到處都可以下載取得,幾乎該有的基本功能與進階功能都提供了,因此在一些教育單位、企業、政府單位的網路中,受到廣泛使用。完成代理伺服器建置後,使用者的電腦上只要在瀏覽器的Proxy的設定中,輸入此伺服器的FQDN或IP位址以及預設3128的通訊埠即可享用。
另一款廣泛被企業選擇導入作為Proxy Server的,就是Microsoft ISA Server(最新版本為ISA Server 2006),雖然需要額外支付合法授權費用,但是由於它提供了更進階的Proxy快取控管功能,還同時結合了內建的第七層防火牆架構、VPN,以及整合LDAP、Active Directory使用者的上網控管能力,因此目前也頗受企業IT的愛戴。完成建置後,使用者的電腦上只要在瀏覽器的Proxy的設定中,輸入此伺服器的FQDN或IP位址以及預設8080的通訊埠即可。
進階的快取架構
上述Proxy Server的快取運作架構,皆是坊間Proxy Server的共同特色,如果你打算將這一項快取機制運用在現有的企業網路中,不妨多了解這部份細節。以全圖形操作介面的ISA Server為例,上面又額外提供幾項快取機制,或許可以讓企業在Proxy Server的整體運作上與管理上更有效率。
.正向快取模式(Forward Caching):主要針對企業內部使用者,提供外部網際網路連線存取的快取服務,這一項也是所有Proxy Server的基本功能,在這種架構下只需要預先安裝好單片網路卡即可建置。
.反向快取模式(Reverse Caching):針對來自外部網際網路存取企業內部所發布的網站,提供對外的快取服務。在這種架構下由於必須區分成內外網路,因此必須採用雙網卡的防火牆模式來進行建置。
.分散快取模式(Distributed Caching):將企業內部中,屬於同一個Active Directory網域的多臺的ISA Server陣列主機的快取資訊,結合成一個快取資訊內容不重複的高效能分散式快取資料庫,來提供給用戶端電腦不間斷的快取服務,在這種架構下還可以確保用戶端電腦連線不中斷的服務特性,不過像這樣的架構規畫目前只有ISA Server 2004或2006的企業版有提供。
以往部署Proxy Server在企業網路中,通常是為了解決網路頻寬不足的問題,可是目前對外連線的網路頻寬,對大多數的企業幾乎都遊刃有餘,這歸功於新一代網路技術的不斷普及化所致,然而Proxy Server是否漸漸失去作用?當然不是!因為它將繼續提供更進階的控管能力與延伸的整合機制,例如結合LDAP的使用者驗證能力、自動篩選掉可能的黑名單網站等等,如此一來,也才能夠繼續因應不同企業在使用者上網控管上的需求。
Proxy Server (代理伺服器或快取伺服器):通常 User 要去連結遠方的站台取得資料時,必須先送出要求信號到遠端,取得回應後,再慢慢把資料傳送回來;有了 Proxy 的設定後,要求資料的信號會先送到 Proxy Server,而 Proxy Server 就好像一個大儲藏庫,它有很大的快取硬碟,儲存著之前人家讀過的網站資料。由於用戶到社區 Proxy 主機之間的內部頻寬大,由 Proxy Server 直接將資料傳給 User,傳輸速度會很快,可免除很多網路塞車的煩惱。此外,Proxy 主機在網路上,還兼具防火牆 (Firewall) 的功能,可提高網路使用安全性。